package com.xbongbong.sys.domain.entity;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.toolbox.helper.ReflectHelper;
import com.xbongbong.paas.toolbox.util.DateUtil;
import com.xbongbong.paas.toolbox.wrap.Entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Map;

/**
 * Description:
 *
 * @author 李杰
 * @version v1.0
 * @date 2019/2/19 15:32
 * @since v1.0
 */
@Getter
@Setter
@ToString
public class TargetLogEntity extends Entity {

    /**
     * Comment for <code>serialVersionUID</code>
     */
    private static final long serialVersionUID = -1L;

    public TargetLogEntity() {
        updateTime = DateUtil.getInt();
        del = 0;
    }

    /**
     * 主键
     */
    private Integer id;
    /**
     * 公司id
     */
    private String corpid;
    /**
     * 员工userId
     */
    private String userId;
    /**
     * 指标开始时间
     */
    private Integer startTime;
    /**
     * 指标结束时间
     */
    private Integer endTime;
    /**
     * 新增客户数
     */
    private String countCustomer;
    /**
     * 新增合同客户数/个，json格式：{“day”:0,”month”:0}
     */
    private String countCustomerCon;
    /**
     * 新增机会客户数/个，json格式：{“day”:0,”month”:0}
     */
    private String countCustomerOpp;
    /**
     * 跟进客户数/个，json格式：{“day”:0,”month”:0}
     */
    private String countFollowCustomer;
    /**
     * 跟进次数/个，json格式：{“day”:0,”month”:0}
     */
    private String countCommunicate;
    /**
     * 签约合同数/个，json格式：{“day”:0,”month”:0}
     */
    private String countContract;
    /**
     * 签约合同金额/元，json格式：{“day”:0,”month”:0}
     */
    private String amountContract;
    /**
     * 新增机会数/个，json格式：{“day”:0,”month”:0}
     */
    private String countOpportunityAdd;
    /**
     * 新增机会金额/元，json格式：{“day”:0,”month”:0}
     */
    private String amountOpportunityAdd;
    /**
     * 赢单机会数/个，json格式：{“day”:0,”month”:0}
     */
    private String countOpportunityWin;
    /**
     * 赢单机会金额/元，json格式：{“day”:0,”month”:0}
     */
    private String amountOpportunityWin;
    /**
     * 跟进机会数/个，json格式：{“day”:0,”month”:0}
     */
    private String countFollowOpportunity;
    /**
     * 已回款金额/元，json格式：{“day”:0,”month”:0}
     */
    private String amountPaymentEd;
    /**
     * 应收未收款/元，json格式：{“day”:0,”month”:0}
     */
    private String amountPaymentUn;
    /**
     * 已付款金额/元，json格式：{“day”:0,”month”:0}
     */
    private String amountPayEd;
    /**
     * 应付未付款/元，json格式：{“day”:0,”month”:0}
     */
    private String amountPayUn;
    /**
     * 已开票金额/元，json格式：{“day”:0,”month”:0}
     */
    private String amountInvoice;
    /**
     * 采购单数量/个，json格式：{“day”:0,”month”:0}
     */
    private String countPurchase;
    /**
     * 采购金额/元，json格式：{“day”:0,”month”:0}
     */
    private String amountPurchase;
    /**
     * 入库产品数/个，json格式：{“day”:0,”month”:0}
     */
    private String countInstock;
    /**
     * 出库产品数/个，json格式：{“day”:0,”month”:0}
     */
    private String countOutstock;
    /**
     *  新增线索数
     */
    private String addClue;
    /**
     * 当前线索数
     */
    private String nowClue;
    /**
     * 跟进线索
     */
    private String followClue;
    /**
     * 创建时间
     */
    private Integer addTime;
    /**
     * 更新时间
     */
    private Integer updateTime;
    /**
     * 删除标记
     */
    private Integer del;

    /**
     * 设置简报值
     * @param reportTargetMap 封装返回结果map：key 为指标alias，@see ReportTargetEnum枚举的alias；value 为统计出的该指标的总额，格式为{“day”:0,”month”:0}
     * @author zcp
     * @date 2019/4/16 15:19
     * @since v1.0
     * @version v1.0
     */
    public void setReportTarget(Map<String, JSONObject> reportTargetMap) {
        /**
         key 为指标alias，@see ReportTargetEnum枚举的alias
         value 为统计出的该指标的总额，格式为{“day”:0,”month”:0}
         */
        for (Map.Entry<String, JSONObject> entry : reportTargetMap.entrySet()) {
            String key = entry.getKey();

            //置入TargetLogEntity
            ReflectHelper.valueSet(this, key, entry.getValue().toString());
        }
    }
}

